package com.ningxun.pagent.bus.mapper;

import java.util.List;
import com.ningxun.pagent.bus.domain.BusPolicyContent;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

/**
 * 政策内容Mapper接口
 * 
 * @author pagent
 * @date 2025-07-10
 */
@Mapper
public interface BusPolicyContentMapper 
{
    /**
     * 查询政策内容
     * 
     * @param policyId 政策内容主键
     * @return 政策内容
     */
    public BusPolicyContent selectBusPolicyContentByPolicyId(Long policyId);

    /**
     * 查询政策内容列表
     * 
     * @param busPolicyContent 政策内容
     * @return 政策内容集合
     */
    public List<BusPolicyContent> selectBusPolicyContentList(BusPolicyContent busPolicyContent);

    /**
     * 新增政策内容
     * 
     * @param busPolicyContent 政策内容
     * @return 结果
     */
    public int insertBusPolicyContent(BusPolicyContent busPolicyContent);

    /**
     * 修改政策内容
     * 
     * @param busPolicyContent 政策内容
     * @return 结果
     */
    public int updateBusPolicyContent(BusPolicyContent busPolicyContent);

    /**
     * 删除政策内容
     * 
     * @param policyId 政策内容主键
     * @return 结果
     */
    public int deleteBusPolicyContentByPolicyId(Long policyId);

    /**
     * 批量删除政策内容
     * 
     * @param policyIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteBusPolicyContentByPolicyIds(Long[] policyIds);

    BusPolicyContent selectBusPolicyContentFieldsById(Long policyId);

    //查询生效的内容
    List<BusPolicyContent> selectState();

    /**
     * 根据政策ID列表查询政策内容列表
     * 
     * @param policyIds 政策ID列表
     * @return 政策内容集合
     */
    public List<BusPolicyContent> selectBusPolicyContentByPolicyIdList(List<Long> policyIds);

    //获取最新政策
    List<BusPolicyContent> selectLatestPolicies(@Param("limit") int limit);
}
